package com.niit.service;

import com.niit.dao.UsersDao;
import com.niit.entity.Users;
import com.niit.utils.JDBCUtils;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
import java.util.regex.Pattern;

public class UsersService {
    UsersDao usersDao = new UsersDao();
//    校验登录参数，判断登录是否成功
public Boolean login(String phoneNum,String password) throws SQLException {
    if(phoneNum == null || phoneNum.equals("")||password == null || password.equals("")){
        System.out.println("用户名密码不能为空");
        return false;
    }
    return usersDao.login(phoneNum, password);
}

    public Boolean register(String phoneNum, String password) throws SQLException {
//    判断用户名密码是否为空
        if(phoneNum == null || phoneNum.equals("")||password == null || password.equals("")){
            System.out.println("注册失败！用户名密码不能为空");
            return false;
        }
//        判断手机号是否符合规则---正则表达式
        if(!Pattern.matches("^1[3456789]\\d{9}$",phoneNum)){
            System.out.println("注册失败！手机号不符合规则"+phoneNum);
            return false;
        }
//        判断密码是否小于6个字符
        if(password.length()<6){
            System.out.println("注册失败！密码长度不可以小于6个字符");
            return false;
        }
//        判断用户在系统内是否已经存在
        Boolean has =  usersDao.hasUser(phoneNum);
        if(has){
            System.out.println("注册失败！用户名已存在");
            return false;
        }
//        添加到数据库
        Boolean addUser =  usersDao.addUser(phoneNum,password);
        if (addUser){

            System.out.println("注册成功！");
            return true;
        }else {
            System.out.println("注册失败！");
            return false;
        }
    }

    public List<Users> listUsers(String phoneNum, Integer gender, Integer role , Integer page, Integer pageSize) throws SQLException {
        List<Users> usersList = usersDao.listUsers(phoneNum, gender, role, page, pageSize);
        for (Users users : usersList) {
            String gen = users.getGender();
            Integer rol = users.getRole();
            switch (gen){
                case "1":
                    users.setGender("男");
                    break;
                case "2":
                    users.setGender("女");
                    break;
            }
            //TODO 把角色转换成字符串
        }
        return  usersDao.listUsers(phoneNum,gender,role,page,pageSize);
    }

}
